package 单例模式.静态内部类;

/** 推荐使用
 * 静态内部类的特点：
 * 1、当类被装载的时候，静态内部类是不会被装载的
 * 2、调用getInstance()时静态内部类被装载
 */
public class Singleton {
    public static void main(String[] args) {
        for (int i = 0; i < 3000; i++) {
            new Thread(()->System.out.println(Singleton.getInstance().hashCode())).start();

        }
    }
    private Singleton(){

    }
    private static class SingletonInstance{
        private static final Singleton instance = new Singleton();
    }
    public static Singleton getInstance(){
        return SingletonInstance.instance;
    }
}
